#pragma once

#define Status2CpNormalOpId 0x1001
#define TmprUnitOpId 0x1002
#define LangTypeOpId 0x1003
#define MileUnitOpId 0x1004
#define SpdUnitOpId 0x1005
#define EgyFulUnitOpId 0x1006
#define TripRstReqOpId 0x1007
#define TripAutoRstModeOpId 0x1008
#define DrivingModeSyncOpId 0x1009
#define WheelAngleAlarmSwitchOpId 0x100a
#define OverSpeedAlarmSwitchOpId 0x100b
#define RearMirrorSelectOpId 0x100c
#define DrvrPfmncAlrmSyncOpId 0x100d
#define TripEduDisModeOpId 0x100e
#define WheelKeyModeReqOpId 0x100f
#define DrivingModeSync2OpId 0x1010
#define TimeFormatTimeOpId 0x1011
#define TimeFormatDateOpId 0x1012
#define TirePressureUnitOpId 0x1013
#define DstShoUnitOpId 0x1014
#define SetVolUnitOpId 0x1015
#define HmiAutoShowModOpId 0x1016
#define MediaPlayInfoSyncOpId 0x1017
#define MediaStatusInfoSyncOpId 0x1018
#define VolChangeSyncOpId 0x1019
#define BTCallInfoSyncOpId 0x101a
#define NavTBTInfoSyncOpId 0x101b
#define NavLaneInfoSyncOpId 0x101c
#define NavETAInfoSyncOpId 0x101d
#define NavTBTNextInfoSyncOpId 0x101e
#define MediaCoverPackSyncOpId 0x101f
#define DIMViewSetOpId 0x1020
#define HmiThemeModReqOpId 0x1021
#define IntrBriStst2DIMOpId 0x1022
#define CustomKeyAction2DIMOpId 0x1023
#define SoundVolLvlSetOpId 0x1024
#define FaceRecIndcrFromDHUOpId 0x1025
#define BTCallCoverSyncOpId 0x1026
#define HmiThemeStyleSyncOpId 0x1027
#define OverSpeedAlarmInfoOpId 0x1028
#define PwrSldgDoorStrgMusicSetOpId 0x1029
#define PwrSldgDoorStrgMusicTpeReqOpId 0x102a
#define SeScrShrCmdOpId 0x102b
#define SnsrDrvrPfmncStsToDimOpId 0x102c
#define ResChrgStrTiSyncOpId 0x102d
#define WirelsDevLostWarnStsOpId 0x102e
#define SeScrShrBriStsOpId 0x102f
#define AvasVolSwitchToDimOpId 0x1030
#define AutoTimeEngineSyncOpId 0x1031
#define HudDispActvReqOpId 0x1032
#define HudSnowModeReqOpId 0x1033
#define SetHUDARSwitchOpId 0x1034
#define GlbRstForSetgAndDataOpId 0x1035
#define DriftModOnOffOpId 0x1036
#define HudPrefInfoSetOpId 0x1040
#define DimNaviInfoSyncOpId 0x1042
#define DimBTCallInfoSyncOpId 0x1043
#define DimMediaInfoSyncOpId 0x1044

#define CpNormalStatusOpId 0x2001
#define OdoInfoOpId 0x2002
#define Trip1MileageOpId 0x2003
#define Trip1EgyUseOpId 0x2004
#define Trip1EgyRecOpId 0x2005
#define Trip1AVSOpId 0x2006
#define Trip1EDTOpId 0x2007
#define Trip2MileageOpId 0x2008
#define Trip2EgyUseOpId 0x2009
#define Trip2EgyRecOpId 0x200a
#define Trip2AVSOpId 0x200b
#define Trip2EDTOpId 0x200c
#define LeFrntTireMsgPSyncOpId 0x200d
#define RiFrntTireMsgPSyncOpId 0x200e
#define LeReTireMsgPSyncOpId 0x200f
#define RiReTireMsgPSyncOpId 0x2010
#define LeFrntTireMsgTSyncOpId 0x2011
#define RiFrntTireMsgTSyncOpId 0x2012
#define LeReTireMsgTSyncOpId 0x2013
#define RiReTireMsgTSyncOpId 0x2014
#define LeFrntTireSymbolSyncOpId 0x2015
#define RiFrntTireSymbolSyncOpId 0x2016
#define LeReTireSymbolSyncOpId 0x2017
#define RiReTireSymbolSyncOpId 0x2018
#define WheelKeyEventAdasOpId 0x2019
#define WheelKeyEventUserOpId 0x201a
#define WheelKeyModeSyncOpId 0x201b
#define DTEChrgInfoOpId 0x201c
#define VehSpdIndcdInfoOpId 0x201d
#define DTEFuelInfoOpId 0x201e
#define SoundVolLvlOpId 0x201f
#define CPLogSyncOpId 0x2020
#define DTEInfoOpId 0x2021
#define ChrgRemainPercentOpId 0x2022
#define FuelRemainPercentOpId 0x2023
#define Trip1AFCOpId 0x2024
#define Trip1AECOpId 0x2025
#define Trip2AFCOpId 0x2026
#define Trip2AECOpId 0x2027
#define SeScrShrRpsOpId 0x2028
#define ACCICCStsOpId 0x2029
#define DIMViewStsOpId 0x202a
#define ODO200mElcUseOpId 0x202b
#define ODO200mFueUseOpId 0x202c
#define NavActvMenuReqSyncOpId 0x202d
#define AD_TimegapOpId 0x202e
#define AD_AdjustTimeGapOpId 0x202f
#define AD_LongitudinalStatus_LampOpId 0x2030
#define AD_Longitudina_AdjustSetSpeedOpId 0x2031
#define AD_AdasTTPaOpId 0x2032
#define AD_PA_ADAS_TSIOpId 0x2033
#define AD_PA_MovObject_NOpId 0x2034
#define AD_PA_StaObject_NOpId 0x2035
#define AD_PA_ADAS_LineOpId 0x2038
#define AD_PA_ADAS_Line_FuncOpId 0x2039
#define AD_PA_ADAS_FCTAOpId 0x203a
#define AD_PA_ADAS_RCWOpId 0x203b
#define AD_PA_StopLineOpId 0x203c
#define AD_PA_CrossWalkDispOpId 0x203d
#define AD_PA_ADAS_ArrowOpId 0x203e
#define AD_PA_ADAS_LineRampOpId 0x203f
#define AD_PA_TLA_LAMPOpId 0x2040
#define AD_PA_ADAS_DOWOpId 0x2041
#define AD_PA_BoundaryWarnOpId 0x2042
#define AD_PA_LCAleft_animationOpId 0x2043
#define AD_PA_LCAright_animationOpId 0x2044
#define AD_PA_LaneChangeDispOpId 0x2045
#define AD_PA_VehiclePathDispOpId 0x2046
#define AD_PA_G_pilot_DIMLightDispOpId 0x2047
#define AD_PA_SC_OverrideOpId 0x2048
#define AD_PA_LateralOffsetDispOpId 0x2049
#define AD_PA_ADAS_TunnelOpId 0x204a
#define AD_PA_TLA_LeftLAMPOpId 0x204b
#define AD_PA_TLA_RightLAMPOpId 0x204c
#define AD_PA_VehiclePathDisp_FuncOpId 0x204d
#define MaintainInfoSyncOpId 0x204e
#define FaultAlarmNofitfyOpId 0x204f
#define HudActvStatusOpId 0x2050
#define HudSnowModeStsOpId 0x2051
#define Trip3MileageOpId 0x2052
#define Trip3AVSOpId 0x2053
#define Trip3EDTOpId 0x2054
#define Trip3AFCOpId 0x2055
#define Trip3AECOpId 0x2056
#define Trip0AECOpId 0x2057
#define TripIECOpId 0x2058
#define DispTypOfElecDstToEmptyOpId 0x2059

#pragma pack(1)
typedef struct _OpStatus2CpNormal_SetRequestNoReturn {
    uint16_t value;// Ap通知CP Normal模块,Ap侧启动状态,可填入独立请求Opcode，AP侧接收返回(ApStatus);
} OpStatus2CpNormal_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpTmprUnit_SetRequestNoReturn {
    uint8_t value;// Ap向Cp同步温度单位(TmprUnit);
} OpTmprUnit_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpLangType_SetRequestNoReturn {
    uint8_t value;// Ap向Cp同步语言类型(LangType);
} OpLangType_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpMileUnit_SetRequestNoReturn {
    uint8_t value;// Ap向Cp同步里程单位/关联电耗单位(TripMileUnit);
} OpMileUnit_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpSpdUnit_SetRequestNoReturn {
    uint8_t value;// Ap向Cp同步速度单位(TripSpdUnit);
} OpSpdUnit_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpEgyFulUnit_SetRequestNoReturn {
    uint8_t value;// Ap向Cp同步油耗单位(TripEgyFulUnit);
} OpEgyFulUnit_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpTripRstReq_SetRequestNoReturn {
    uint8_t value;// 请求CP重置行程数据(TripRstReq);
} OpTripRstReq_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpTripAutoRstMode_SetRequestNoReturn {
    uint8_t value;// 请求CP设置自动重置类型(TripAutoRstMode);
} OpTripAutoRstMode_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpDrivingModeSync_SetRequestNoReturn {
    uint8_t value;// 通知CP驾驶模式变化(DrvModReqType2IHU);
} OpDrivingModeSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpWheelAngleAlarmSwitch_SetRequestNoReturn {
    uint8_t value;// 请求方向盘角度报警功能开关(OnOff1);
} OpWheelAngleAlarmSwitch_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpOverSpeedAlarmSwitch_SetRequestNoReturn {
    uint8_t value;// 请求车速报警功能开关(OnOff1);
} OpOverSpeedAlarmSwitch_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpRearMirrorSelect_SetRequestNoReturn {
    uint8_t value;// 请求选中后视镜(MirrorSelect);
} OpRearMirrorSelect_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpDrvrPfmncAlrmSync_SetRequestNoReturn {
    uint8_t value;// 同步疲劳驾驶状态至CP(DrvrPfmncWarnReq);
} OpDrvrPfmncAlrmSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpTripEduDisMode_SetRequestNoReturn {
    uint8_t value;// 请求续航显示模式(TripEduDisModeReq);
} OpTripEduDisMode_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpWheelKeyModeReq_SetRequestNoReturn {
    uint8_t value;// 请求仪表切换按键控制权(WheelModeReq);
} OpWheelKeyModeReq_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpDrivingModeSync2_SetRequestNoReturn {
    uint8_t value;// 通知CP驾驶模式变化，额外需求 (自定义驾驶模式)(DrvModReqType2IHU);
} OpDrivingModeSync2_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpTimeFormatTime_SetRequestNoReturn {
    uint8_t value;// 同步时间制式格式仪表(TimeFormat);
} OpTimeFormatTime_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpTimeFormatDate_SetRequestNoReturn {
    uint8_t value;// 同步时间显示格式仪表(TimeDate);
} OpTimeFormatDate_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpTirePressureUnit_SetRequestNoReturn {
    uint8_t value;// 同步胎压单位至仪表侧(TriePUnit);
} OpTirePressureUnit_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpDstShoUnit_SetRequestNoReturn {
    uint8_t value;// 设置短距离单位(DstShoUnit);
} OpDstShoUnit_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpSetVolUnit_SetRequestNoReturn {
    uint8_t value;// 设置油耗相关单位(VolUnit);
} OpSetVolUnit_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpHmiAutoShowMod_SetRequestNoReturn {
    uint8_t value;// 设置展会模式(OnOff1);
} OpHmiAutoShowMod_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpMediaPlayInfoSync_SetRequestNoReturn {
    uint8_t mMusicName[96];// std::string，字符串，音乐名
    uint8_t mMusicSingerName[96];// std::string，字符串，歌手名
    uint8_t mSourceType;// 媒体类型(MediaSourceType)
    uint16_t mMusicProgressTotal;// 当前媒体总时长
    uint8_t mMusicCoverDetail;// 当前歌单封面数据(MediaCoverDetail)
    uint8_t mMusicCoverShowType;// 当前歌单显示数量，仪表所展示媒体队列，显示一张/两张/三张媒体层叠封面(MediaCoverType)
    uint8_t mMusicTabIndex;// 每次歌曲变化，发送CURRENT/NEXT/NEXT2(MediaTabIndex)
    uint8_t mMusicTabType;// 当前播放歌曲切换的形式：通过按上一首/下一首/未知(MediaTabType)
} OpMediaPlayInfoSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpMediaStatusInfoSync_SetRequestNoReturn {
    uint8_t mMusicStatus;// 歌曲状态(MediaStatus)
    uint16_t mMusicProgressTotal;// 当前媒体总时长，与MediaPlayInfo.mMusicProgressTotal对应
    uint16_t mMusicProgressSec;// 当前媒体播放进度时长
} OpMediaStatusInfoSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpVolChangeSync_SetRequestNoReturn {
    uint8_t mVolType;// 音量类型(VolType)
    uint8_t mVolValue;// 对应音量当前值
    uint8_t mVolPercent;// 对应类型MAX值，0-100
    uint8_t mVolLevel;// 对应类型音量档位(VolLevel)
    uint8_t mVolStatus;// 对应音量类型状态，静音等(VolStatus)
} OpVolChangeSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpBTCallInfoSync_SetRequestNoReturn {
    uint8_t mBTConnect;// 蓝牙连接状态(BTStatus)
    uint8_t mCallNum;// 当前进行的通话数量，为1则仅通话中，为2则三方通话中，0无效，不会超过2
    uint8_t mCallCharacterId;// 当前数据所属的通话index_id(CharacterId)
    uint8_t mCallName[96];// 联系人名或电话
    uint8_t mCallCover;// 联系人是否有封面，bool类型
    uint8_t mCallStatus;// 通话状态(CallStatus)
    uint16_t mCallDuration;// 通话时间，秒
    uint8_t mCallContactType;// 联系人类型(ContactType)
    uint8_t mCallContactMark;// 联系人标记(ContactMark)
} OpBTCallInfoSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpNavTBTInfoSync_SetRequestNoReturn {
    uint8_t mNavStatus;// 导航状态(NavStatus)
    uint8_t mNavTBTArrow;// 转向箭头，关联TBT文档《车道转向图与仪表ID对应表》@OpenAPI/NaviService
    uint16_t mNavTBTDist;// 转向距离，与转向单位关联，单位为m时为真实值，单位为Km时乘0.1
    uint8_t mNavTBTDistUnit;// 转向距离单位，与转向值关联(NavUnit)
    uint8_t mNavRoadName[48];// 转向引导点名称
} OpNavTBTInfoSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpNavLaneInfoSync_SetRequestNoReturn {
    uint8_t mNavLaneNum;// 车道信息数，不大于32
    uint8_t mNavLaneArrows[32];// 车道数对应转向箭头，有效长度等于车道数，实际内容对应《车道转向图与仪表ID对应表》表1
} OpNavLaneInfoSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpNavETAInfoSync_SetRequestNoReturn {
    uint16_t mNavETADist;// 目的地剩余距离，与目的地剩余距离单位关联，单位为m时为真实值，单位为Km时乘0.1
    uint16_t mNavETADistUnit;// 目的地剩余距离单位(NavUnit)
    uint16_t mNavETATimeMin;// 目的地剩余时间，单位分钟
    uint8_t mNavETATimeString[48];// 目的地到达时间预估，字段串
} OpNavETAInfoSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpNavTBTNextInfoSync_SetRequestNoReturn {
    uint8_t mNavTBTArrow;// 引导点后下一路口转向箭头，关联TBT文档《车道转向图与仪表ID对应表》@OpenAPI/NaviService
    uint16_t mNavTBTDist;// 引导点后下一路口转向距离，与下一路口转向距离单位关联，单位为m时为真实值，单位为Km时乘0.1
    uint8_t mNavTBTDistUnit;// 引导点后下一路口转向距离单位，与转向值关联(NavUnit)
} OpNavTBTNextInfoSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpMediaCoverPackSync_SetRequestNoReturn {
    uint8_t mMediaCoverTabIndex;// 所传递封面图片顺序(MediaTabIndex)
    uint8_t mMediaCoverFileType;// 所传递封面图片类型(MediaFileType)
    uint32_t mMediaCoverFileSize;// 所传递封面图片的文件流字节总大小
    uint16_t mMediaCoverPackTotal;// 所传递封面图片拆包总数量
    uint16_t mMediaCoverPackIndex;// 所传递封面图片拆包序列号
    uint16_t mMediaCoverPackSize;// 所传递封面图片包内容大小
    uint8_t mMediaCoverData[61440];// 所传递封面图片内容
} OpMediaCoverPackSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpDIMViewSet_SetRequestNoReturn {
    uint8_t value;// 设置仪表视图模式(DIMViewType);
} OpDIMViewSet_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpHmiThemeModReq_SetRequestNoReturn {
    uint8_t value;// 显示模式：深色/浅色/自动(时光引擎)(ThemeMod);
} OpHmiThemeModReq_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpIntrBriStst2DIM_SetRequestNoReturn {
    uint8_t value;// 同步亮度等级至仪表(CSDBritLvl);
} OpIntrBriStst2DIM_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpCustomKeyAction2DIM_SetRequestNoReturn {
    uint8_t value;// CSD自定义按键触发类型(CustomKeyAction);
} OpCustomKeyAction2DIM_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpSoundVolLvlSet_SetRequestNoReturn {
    uint8_t value;// Chime警告音同步至仪表(SoundVolLvl);
} OpSoundVolLvlSet_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpFaceRecIndcrFromDHU_SetRequestNoReturn {
    uint8_t value;// 人脸识别成功状态同步至仪表(OnOff1);
} OpFaceRecIndcrFromDHU_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpBTCallCoverSync_SetRequestNoReturn {
    uint8_t mCallCharacterId;// 当前传递联系人所属CharacterId，一通电话唯一标识(关联BTCallInfo.mCallCharacterId)(CharacterId)
    uint8_t mCallCoverFileType;// 当前传递封面文件类型(MediaFileType)
    uint32_t mCallCoverFileSize;// 所传递联系人，头像图片的文件流字节总大小
    uint16_t mCallCoverPackTotal;// 所传递联系人，头像图片拆包总数量
    uint16_t mCallCoverPackIndex;// 所传递联系人，头像图片拆包序列号
    uint16_t mCallCoverPackSize;// 所传递联系人，头像图片当前包内容大小
    uint8_t mCallCoverData[61440];// 所传递联系人，当前包头像图片内容
} OpBTCallCoverSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpHmiThemeStyleSync_SetRequestNoReturn {
    uint8_t value;// 同步CSD主题类型至仪表(HmiThemeStyle);
} OpHmiThemeStyleSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpOverSpeedAlarmInfo_SetRequestNoReturn {
    uint8_t value;// 超速报警触发车速值(None);
} OpOverSpeedAlarmInfo_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpPwrSldgDoorStrgMusicSet_SetRequestNoReturn {
    uint8_t value;// IVI侧控制信号，迎宾灯声音开关(MusicSet);
} OpPwrSldgDoorStrgMusicSet_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpPwrSldgDoorStrgMusicTpeReq_SetRequestNoReturn {
    uint8_t value;// IVI侧控制信号，迎宾灯声音类型(MusicTpeReq);
} OpPwrSldgDoorStrgMusicTpeReq_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpSeScrShrCmd_SetRequestNoReturn {
    uint8_t mType;// 投屏接口类型：查询状态/请求投屏(SeScrShrCmdType)
    uint8_t mCmd;// 投屏类型：开始投屏/结束投屏(SeScrShrCmdEnum)
    uint8_t mPosistion;// 投屏层级：顶层/底层(SeScrShrPositionEnum)
    uint8_t mSource;// 投屏功能 0: Map, 1: Video, 2: Game, 3: Profile, (SeScrShrSourceEnum)
} OpSeScrShrCmd_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpSnsrDrvrPfmncStsToDim_SetRequestNoReturn {
    uint8_t value;// DMM状态发给仪表(SnsrDrvrPfmncSts);
} OpSnsrDrvrPfmncStsToDim_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpResChrgStrTiSync_SetRequestNoReturn {
    uint8_t mHourTime;// 小时值Range: 0-23  精度为1
    uint8_t mMinTime;// 分钟值Range: 0-50  精度为10
} OpResChrgStrTiSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpWirelsDevLostWarnSts_SetRequestNoReturn {
    uint8_t value;// IVI同步无线充电遗留提醒(WarningSts);
} OpWirelsDevLostWarnSts_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpSeScrShrBriSts_SetRequestNoReturn {
    uint8_t value;// 情景模式下CP亮度设置(SeScrShrBriSts);
} OpSeScrShrBriSts_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpAvasVolSwitchToDim_SetRequestNoReturn {
    uint8_t value;// AVAS开关同步至CP(AvasVolSwitch);
} OpAvasVolSwitchToDim_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpAutoTimeEngineSync_SetRequestNoReturn {
    uint8_t mTimeEngineStatus;// 自动模式下，时光引擎状态值，对应不同仪表渲染主题(TimeEngineStatus)
    uint8_t mThemeColorType;// 自动模式下，时光引擎状态值下，显示的UI深浅色(ThemeColorType)
} OpAutoTimeEngineSync_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpHudDispActvReq_SetRequestNoReturn {
    uint8_t value;// HUD开关请求(OnOff1);
} OpHudDispActvReq_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpHudSnowModeReq_SetRequestNoReturn {
    uint8_t value;// 雪地模式开关请求(OnOff1);
} OpHudSnowModeReq_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpSetHUDARSwitch_SetRequestNoReturn {
    uint8_t value;// AR HUD开关(OnOff1);
} OpSetHUDARSwitch_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpGlbRstForSetgAndData_SetRequestNoReturn {
    uint8_t mGlbRst;// 恢复数据类型(GlbRstTypeEnum)
    uint8_t mPen;// profile id信息(ProfPenSts1Enum)
} OpGlbRstForSetgAndData_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpDriftModOnOff_SetRequestNoReturn {
    uint8_t value;// 3.2.50 [SW_FC_505_064]Drift mode status telltale漂移模式telltale(OnOff1);
} OpDriftModOnOff_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpHudPrefInfoSet_SetRequestNoReturn {
    uint8_t value;// HUD视图模式：AR、地图、ADAS(HudPrefInfoSet);
} OpHudPrefInfoSet_SetRequestNoReturn;
#pragma pack()

#pragma pack(1)
typedef struct _OpCpNormalStatus_Notify {
    uint16_t value;// CP Normal模块通知AP,Ap侧根据状态，返回全部接口,可填入独立请求Opcode，AP侧接收返回(CpStatus);
} OpCpNormalStatus_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpOdoInfo_Notify {
    uint32_t mData:24;// 实际仪表显示数值,数值为55，即55km 
    uint32_t mFormat:8;// (TripMileUnit)
    uint8_t mStatus;// -(TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpOdoInfo_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip1Mileage_Notify {
    uint32_t mData:24;// Trip里程数据=mData*0.1
    uint32_t mFormat:8;// (TripMileUnit)
    uint8_t mStatus;// (TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpTrip1Mileage_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip1EgyUse_Notify {
    // empty
} OpTrip1EgyUse_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip1EgyRec_Notify {
    // empty
} OpTrip1EgyRec_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip1AVS_Notify {
    uint16_t mData;// 
    uint8_t mFormat;// (TripMileUnit)
    uint8_t mStatus;// (TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpTrip1AVS_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip1EDT_Notify {
    uint32_t mData:24;// unit:s
    uint32_t mStatus:8;// (TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpTrip1EDT_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip2Mileage_Notify {
    uint32_t mData:24;// Trip里程数据=mData*0.1
    uint32_t mFormat:8;// (TripMileUnit)
    uint8_t mStatus;// (TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpTrip2Mileage_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip2EgyUse_Notify {
    // empty
} OpTrip2EgyUse_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip2EgyRec_Notify {
    // empty
} OpTrip2EgyRec_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip2AVS_Notify {
    uint16_t mData;// 
    uint8_t mFormat;// (TripMileUnit)
    uint8_t mStatus;// (TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpTrip2AVS_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip2EDT_Notify {
    uint32_t mData:24;// unit:s
    uint32_t mStatus:8;// (TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpTrip2EDT_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpLeFrntTireMsgPSync_Notify {
    uint32_t mData;// 胎压数值,0xFFFFFFFF="invalid", 真实数据 = mData * mResolution
    uint8_t mStatus:2;// Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireStatus)
    uint8_t mResolution:1;// Range: 0 = 1,   1 = 0.1(TriePRadix)
    uint8_t mUnit:2;// Range: 0 = kPa, 1 = Psi, 2 = bar, 3 = Atm(TriePUnit)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpLeFrntTireMsgPSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpRiFrntTireMsgPSync_Notify {
    uint32_t mData;// 胎压数值,0xFFFFFFFF="invalid", 真实数据 = mData * mResolution
    uint8_t mStatus:2;// Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireStatus)
    uint8_t mResolution:1;// Range: 0 = 1,   1 = 0.1(TriePRadix)
    uint8_t mUnit:2;// Range: 0 = kPa, 1 = Psi, 2 = bar, 3 = Atm(TriePUnit)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpRiFrntTireMsgPSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpLeReTireMsgPSync_Notify {
    uint32_t mData;// 胎压数值,0xFFFFFFFF="invalid", 真实数据 = mData * mResolution
    uint8_t mStatus:2;// Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireStatus)
    uint8_t mResolution:1;// Range: 0 = 1,   1 = 0.1(TriePRadix)
    uint8_t mUnit:2;// Range: 0 = kPa, 1 = Psi, 2 = bar, 3 = Atm(TriePUnit)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpLeReTireMsgPSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpRiReTireMsgPSync_Notify {
    uint32_t mData;// 胎压数值,0xFFFFFFFF="invalid", 真实数据 = mData * mResolution
    uint8_t mStatus:2;// Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireStatus)
    uint8_t mResolution:1;// Range: 0 = 1,   1 = 0.1(TriePRadix)
    uint8_t mUnit:2;// Range: 0 = kPa, 1 = Psi, 2 = bar, 3 = Atm(TriePUnit)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpRiReTireMsgPSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpLeFrntTireMsgTSync_Notify {
    int16_t mData;// 胎温数值,0x0FFF="invalid", 真实数据 = mData * mResolution
    uint8_t mStatus:2;// Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireStatus)
    uint8_t mResolution:1;// Range: 0 = 1,   1 = 0.1(TrieTRadix)
    uint8_t mUnit:2;// Range: 0 = ℃, 1 = ℉(TrieTUnit)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpLeFrntTireMsgTSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpRiFrntTireMsgTSync_Notify {
    int16_t mData;// 胎温数值,0x0FFF="invalid", 真实数据 = mData * mResolution
    uint8_t mStatus:2;// Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireStatus)
    uint8_t mResolution:1;// Range: 0 = 1,   1 = 0.1(TrieTRadix)
    uint8_t mUnit:2;// Range: 0 = ℃, 1 = ℉(TrieTUnit)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpRiFrntTireMsgTSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpLeReTireMsgTSync_Notify {
    int16_t mData;// 胎温数值,0x0FFF="invalid", 真实数据 = mData * mResolution
    uint8_t mStatus:2;// Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireStatus)
    uint8_t mResolution:1;// Range: 0 = 1,   1 = 0.1(TrieTRadix)
    uint8_t mUnit:2;// Range: 0 = ℃, 1 = ℉(TrieTUnit)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpLeReTireMsgTSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpRiReTireMsgTSync_Notify {
    int16_t mData;// 胎温数值,0x0FFF="invalid", 真实数据 = mData * mResolution
    uint8_t mStatus:2;// Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireStatus)
    uint8_t mResolution:1;// Range: 0 = 1,   1 = 0.1(TrieTRadix)
    uint8_t mUnit:2;// Range: 0 = ℃, 1 = ℉(TrieTUnit)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpRiReTireMsgTSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpLeFrntTireSymbolSync_Notify {
    uint8_t mStatus:5;//  Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireSymbolStatus)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpLeFrntTireSymbolSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpRiFrntTireSymbolSync_Notify {
    uint8_t mStatus:5;//  Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireSymbolStatus)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpRiFrntTireSymbolSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpLeReTireSymbolSync_Notify {
    uint8_t mStatus:5;//  Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireSymbolStatus)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpLeReTireSymbolSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpRiReTireSymbolSync_Notify {
    uint8_t mStatus:5;//  Range: 0 = old, 1 = normal, 2 = warning, 3 = none(TireSymbolStatus)
    uint8_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpRiReTireSymbolSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpWheelKeyEventAdas_Notify {
    uint8_t mAdasHardKeyTop;// (WheelKeyEvent)
    uint8_t mAdasHardKeyBottom;// (WheelKeyEvent)
    uint8_t mAdasHardKeyLeft;// (WheelKeyEvent)
    uint8_t mAdasHardKeyRight;// (WheelKeyEvent)
    uint8_t mAdasHardKeyConfirm;// (WheelKeyEvent)
    uint8_t mAdasHardKeyResume;// (WheelKeyEvent)
    uint8_t mAdasHardKeyCancel;// (WheelKeyEvent)
} OpWheelKeyEventAdas_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpWheelKeyEventUser_Notify {
    uint8_t mHardKeyTop;// (WheelKeyEvent)
    uint8_t mHardKeyBottom;// (WheelKeyEvent)
    uint8_t mHardKeyLeft;// (WheelKeyEvent)
    uint8_t mHardKeyRight;// (WheelKeyEvent)
    uint8_t mHardKeyConfirm;// (WheelKeyEvent)
    uint8_t mHardKeyVR;// (WheelKeyEvent)
    uint8_t mHardKeyCustom;// (WheelKeyEvent)
    uint8_t mHardKeyMenu;// (WheelKeyEvent)
    uint8_t mHardKeyMute;// (WheelKeyEvent)
} OpWheelKeyEventUser_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpWheelKeyModeSync_Notify {
    uint8_t value;// 获取仪表方控控制权状态(WheelKeyModeStatus);
} OpWheelKeyModeSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpDTEChrgInfo_Notify {
    uint16_t mData;// 
    uint8_t mFormat;// DteUnit: 0 : DTE - KM, 1 : DTE - MILES(TripMileUnit)
    uint8_t mStatus;// Status: 0 : low elec status ON 1 : low elec status OFF(OnOff2)
    uint8_t mAvailability;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpDTEChrgInfo_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpVehSpdIndcdInfo_Notify {
    uint16_t mData:9;// Range: 0 to 260(when format is km/h, the max value is 260; when format is mph, the max value is 160)
    uint16_t mStatus:3;// Range:0 =No warning 1 =Warning(Status)
    uint16_t mFormat:1;// Range: 0 = km/h, 1 = mph(TripMileUnit)
    uint16_t mAvailability:3;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpVehSpdIndcdInfo_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpDTEFuelInfo_Notify {
    uint16_t mData;// 
    uint8_t mFormat;// DteUnit: 0 : DTE - KM, 1 : DTE - MILES(TripMileUnit)
    uint8_t mStatus;// Status: 0 : low elec status ON 1 : low elec status OFF(OnOff2)
    uint8_t mAvailability;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpDTEFuelInfo_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpSoundVolLvl_Notify {
    uint8_t value;// Chime警告音仪表反馈(SoundVolLvl);
} OpSoundVolLvl_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpCPLogSync_Notify {
    uint8_t mLogLevel;// LogLevel等级，和android一致，android非debug系统默认打印warning以上(LogLevel)
    uint8_t mLogData[1400];// std::string
} OpCPLogSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpDTEInfo_Notify {
    uint16_t mData;// 
    uint8_t mFormat;// DteUnit: 0 : DTE - KM, 1 : DTE - MILES(TripMileUnit)
    uint8_t mStatus;// Status: 0 : low elec status ON 1 : low elec status OFF(OnOff2)
    uint8_t mAvailability;// Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpDTEInfo_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpChrgRemainPercent_Notify {
    uint32_t mLevel;// actual_value = mLevel(0-100)
    uint32_t mAvailability;// Availability default value is 4, Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpChrgRemainPercent_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpFuelRemainPercent_Notify {
    uint8_t value;// 当前剩余油量百分比 (值为0 - 100）(None);
} OpFuelRemainPercent_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip1AFC_Notify {
    uint16_t mData;// factor: 0.1;  actual_value = mData * factor(dynamic)
    uint8_t mFormat;// TripEgyFulUnit 0: L/100km, 1: km/L, 2: UK, 3: US(TripEgyFulUnit)
    uint8_t mStatus;// TripRstStatus 0: reset, 1: normal，行程重置状态，此数据清空后行驶300米后回1(TripRstStatus)
    uint8_t mAvailability;// Availability default value is 4, Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpTrip1AFC_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip1AEC_Notify {
    uint16_t mData;// factor: 0.1;  actual_value = (mData -1023) * factor(dynamic)
    uint8_t mFormat;// AECUnit 0: kwh/100km, 1: kwh/100mile(AECUnit)
    uint8_t mStatus;// TripRstStatus 0: reset, 1: normal，行程重置状态，此数据清空后行驶300米后回1(TripRstStatus)
    uint8_t mAvailability;// Availability default value is 4, Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpTrip1AEC_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip2AFC_Notify {
    uint16_t mData;// factor: 0.1;  actual_value = mData * factor(dynamic)
    uint8_t mFormat;// TripEgyFulUnit 0: L/100km, 1: km/L, 2: UK, 3: US(TripEgyFulUnit)
    uint8_t mStatus;// TripRstStatus 0: reset, 1: normal，行程重置状态，此数据清空后行驶300米后回1(TripRstStatus)
    uint8_t mAvailability;// Availability default value is 4, Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpTrip2AFC_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip2AEC_Notify {
    uint16_t mData;// factor: 0.1;  actual_value = (mData -1023) * factor(dynamic)
    uint8_t mFormat;// AECUnit 0: kwh/100km, 1: kwh/100mile(AECUnit)
    uint8_t mStatus;// TripRstStatus 0: reset, 1: normal，行程重置状态，此数据清空后行驶300米后回1(TripRstStatus)
    uint8_t mAvailability;// Availability default value is 4, Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpTrip2AEC_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpSeScrShrRps_Notify {
    uint8_t value;// 仪表投屏状态回复(SeScrShrRpsStsEnum);
} OpSeScrShrRps_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpACCICCSts_Notify {
    uint8_t value;// ICC/ACC开启状态(ACCICCStsEnum);
} OpACCICCSts_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpDIMViewSts_Notify {
    uint8_t value;// 仪表当前视图(DIMViewType);
} OpDIMViewSts_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpODO200mElcUse_Notify {
    int32_t value;// 每200M电量消耗数据,单位wh,实际值=data(None);
} OpODO200mElcUse_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpODO200mFueUse_Notify {
    uint32_t value;// 每200M油量消耗数据,单位ml(None);
} OpODO200mFueUse_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpNavActvMenuReqSync_Notify {
    uint8_t value;// 激活导航菜单开关,疲劳提醒，仪表操作弹窗结果,OK时导航去服务区，取消时无动作(OnOff1);
} OpNavActvMenuReqSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_Timegap_Notify {
    uint8_t mData[1];// 仪表透传ADAS数据
} OpAD_Timegap_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_AdjustTimeGap_Notify {
    uint8_t mData[1];// 仪表透传ADAS数据
} OpAD_AdjustTimeGap_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_LongitudinalStatus_Lamp_Notify {
    uint8_t mData[3];// 仪表透传ADAS数据
} OpAD_LongitudinalStatus_Lamp_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_Longitudina_AdjustSetSpeed_Notify {
    uint8_t mData[1];// 仪表透传ADAS数据
} OpAD_Longitudina_AdjustSetSpeed_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_AdasTTPa_Notify {
    uint8_t mData[7];// 仪表透传ADAS数据
} OpAD_AdasTTPa_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_ADAS_TSI_Notify {
    uint8_t mData[16];// 仪表透传ADAS数据
} OpAD_PA_ADAS_TSI_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_MovObject_N_Notify {
    uint8_t mData[110];// 仪表透传ADAS数据
} OpAD_PA_MovObject_N_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_StaObject_N_Notify {
    uint8_t mData[64];// 仪表透传ADAS数据
} OpAD_PA_StaObject_N_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_ADAS_Line_Notify {
    uint8_t mData[16];// 仪表透传ADAS数据
} OpAD_PA_ADAS_Line_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_ADAS_Line_Func_Notify {
    uint8_t mData[80];// 仪表透传ADAS数据
} OpAD_PA_ADAS_Line_Func_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_ADAS_FCTA_Notify {
    uint8_t mData[4];// 仪表透传ADAS数据
} OpAD_PA_ADAS_FCTA_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_ADAS_RCW_Notify {
    uint8_t mData[2];// 仪表透传ADAS数据
} OpAD_PA_ADAS_RCW_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_StopLine_Notify {
    uint8_t mData[4];// 仪表透传ADAS数据
} OpAD_PA_StopLine_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_CrossWalkDisp_Notify {
    uint8_t mData[12];// 仪表透传ADAS数据
} OpAD_PA_CrossWalkDisp_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_ADAS_Arrow_Notify {
    uint8_t mData[35];// 仪表透传ADAS数据
} OpAD_PA_ADAS_Arrow_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_ADAS_LineRamp_Notify {
    uint8_t mData[16];// 仪表透传ADAS数据
} OpAD_PA_ADAS_LineRamp_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_TLA_LAMP_Notify {
    uint8_t mData[4];// 仪表透传ADAS数据
} OpAD_PA_TLA_LAMP_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_ADAS_DOW_Notify {
    uint8_t mData[2];// 仪表透传ADAS数据
} OpAD_PA_ADAS_DOW_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_BoundaryWarn_Notify {
    uint8_t mData[2];// 仪表透传ADAS数据
} OpAD_PA_BoundaryWarn_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_LCAleft_animation_Notify {
    uint8_t mData[2];// 仪表透传ADAS数据
} OpAD_PA_LCAleft_animation_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_LCAright_animation_Notify {
    uint8_t mData[2];// 仪表透传ADAS数据
} OpAD_PA_LCAright_animation_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_LaneChangeDisp_Notify {
    uint8_t mData[6];// 仪表透传ADAS数据
} OpAD_PA_LaneChangeDisp_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_VehiclePathDisp_Notify {
    uint8_t mData[5];// 仪表透传ADAS数据
} OpAD_PA_VehiclePathDisp_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_G_pilot_DIMLightDisp_Notify {
    uint8_t mData[2];// 仪表透传ADAS数据
} OpAD_PA_G_pilot_DIMLightDisp_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_SC_Override_Notify {
    uint8_t mData[2];// 仪表透传ADAS数据
} OpAD_PA_SC_Override_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_LateralOffsetDisp_Notify {
    uint8_t mData[2];// 仪表透传ADAS数据
} OpAD_PA_LateralOffsetDisp_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_ADAS_Tunnel_Notify {
    uint8_t mData[3];// 仪表透传ADAS数据
} OpAD_PA_ADAS_Tunnel_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_TLA_LeftLAMP_Notify {
    uint8_t mData[4];// 仪表透传ADAS数据
} OpAD_PA_TLA_LeftLAMP_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_TLA_RightLAMP_Notify {
    uint8_t mData[4];// 仪表透传ADAS数据
} OpAD_PA_TLA_RightLAMP_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpAD_PA_VehiclePathDisp_Func_Notify {
    uint8_t mData[208];// 仪表透传ADAS数据
} OpAD_PA_VehiclePathDisp_Func_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpMaintainInfoSync_Notify {
    uint32_t mDstToSrv;// 距离下次保养的距离 ，单位Km，0-126500
    uint16_t mDayToSrv;// 距离下次保养的时间，单位天，0-2880
    uint16_t mEngHrToSrv;// 距离下次发动机保养的时候，单位小时，0-2000
} OpMaintainInfoSync_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpFaultAlarmNofitfy_Notify {
    uint16_t mNotiA;// A区报警Id，参考GEELY_NOTIFICATION_ID《Notification Database DIM》
    uint16_t mNotiB;// B区报警Id，参考GEELY_NOTIFICATION_ID《Notification Database DIM》
} OpFaultAlarmNofitfy_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpHudActvStatus_Notify {
    uint8_t value;// HUD开关状态反馈(OnOff1);
} OpHudActvStatus_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpHudSnowModeSts_Notify {
    uint8_t value;// 雪地模式开关状态反馈(OnOff1);
} OpHudSnowModeSts_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip3Mileage_Notify {
    uint32_t mData:24;// Trip里程数据=mData*0.1
    uint32_t mFormat:8;// (TripMileUnit)
    uint8_t mStatus;// (TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpTrip3Mileage_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip3AVS_Notify {
    uint16_t mData;// 
    uint8_t mFormat;// (TripMileUnit)
    uint8_t mStatus;// (TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpTrip3AVS_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip3EDT_Notify {
    uint32_t mData:24;// unit:s
    uint32_t mStatus:8;// (TripRstStatus)
    uint8_t mAvailability;// (Availability)
} OpTrip3EDT_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip3AFC_Notify {
    uint16_t mData;// factor: 0.1;  actual_value = mData * factor(dynamic)
    uint8_t mFormat;// TripEgyFulUnit 0: L/100km, 1: km/L, 2: UK, 3: US(TripEgyFulUnit)
    uint8_t mStatus;// TripRstStatus 0: reset, 1: normal，行程重置状态，此数据清空后行驶300米后回1(TripRstStatus)
    uint8_t mAvailability;// Availability default value is 4, Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpTrip3AFC_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip3AEC_Notify {
    uint16_t mData;// factor: 0.1;  actual_value = (mData -1023) * factor(dynamic)
    uint8_t mFormat;// AECUnit 0: kwh/100km, 1: kwh/100mile(AECUnit)
    uint8_t mStatus;// TripRstStatus 0: reset, 1: normal，行程重置状态，此数据清空后行驶300米后回1(TripRstStatus)
    uint8_t mAvailability;// Availability default value is 4, Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpTrip3AEC_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTrip0AEC_Notify {
    uint16_t mData;// factor: 0.1;  actual_value = (mData -1023) * factor(dynamic)
    uint8_t mFormat;// AECUnit 0: kwh/100km, 1: kwh/100mile(AECUnit)
    uint8_t mStatus;// TripRstStatus 0: reset, 1: normal，行程重置状态，此数据清空后行驶300米后回1(TripRstStatus)
    uint8_t mAvailability;// Availability default value is 4, Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpTrip0AEC_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpTripIEC_Notify {
    uint16_t mData;// factor: 0.1;  actual_value = (mData -1023) * factor(dynamic)
    uint8_t mFormat;// AECUnit 0: kwh/100km, 1: kwh/100mile(AECUnit)
    uint8_t mStatus;// TripRstStatus 0: reset, 1: normal，行程重置状态，此数据清空后行驶300米后回1(TripRstStatus)
    uint8_t mAvailability;// Availability default value is 4, Range: 1 = Active, 2 = NotActive, 3 = Error, 4 = NotAvailable(Availability)
} OpTripIEC_Notify;
#pragma pack()

#pragma pack(1)
typedef struct _OpDispTypOfElecDstToEmpty_Notify {
    uint8_t value;// 续航里程反馈信号(DispTypOfElecDstToEmptyStatus);
} OpDispTypOfElecDstToEmpty_Notify;
#pragma pack()
